package cn.kgc.feign;

import cn.kgc.entity.Users;
import cn.kgc.grace.result.GraceJSONResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Collections;

/**
 * 远程调用用户接口时 如果用户接口出现异常时，则调用该类的降级方法
 * 熔断降级的规则
 * RT规则
 * 接口1s有超过5个请求  并且接口的平均时间大于设置的阈值  接下来的窗口时间内直接执行降级方法
 */
@Component
@Slf4j
public class UsersFeifnClientImpl implements UsersFeignClient {
    @Override
    public GraceJSONResult hrDetail(String id) {
        Users users = new Users();
        return GraceJSONResult.ok(users);
    }

    @Override
    public GraceJSONResult userIdList(String userName) {
        return GraceJSONResult.ok(Collections.emptyList());
    }

    @Override
    public GraceJSONResult updateUserRole(String commitUserId, String companyId) {
        return GraceJSONResult.error();
    }

    @Override
    public GraceJSONResult detail(String id) {
        log.error("远程调用用户接口时出现异常用户的id为{}",id);
        System.out.println("远程调用用户接口时出现异常用户的id为!!!!!!");
        Users users = new Users();
        return GraceJSONResult.ok(users);
    }
}

